"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/23 8:51
@Description : 
类函数的定义
类中的函数时描述当前类可以实现的某种操作
def 函数名(self):
    函数体


函数的访问
1. 类名.函数名()  需要手动传入一个实例对象
2. 实例.函数名()

同一个类中是否可以定义两个同名的函数
1. 类中可以定义两个同名函数
2. 同名函数在被调用时不会根据不同参数的传递实现不同函数的调用
"""


class Student:
    # 对象创建时会被自动调用
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 通过函数的定义 描述了学生的学习行为  self时以类函数的必要参数 且该参数在后续调用该函数时不需要手动传入
    def study(self):
        # print(self)
        print(f'年龄为{self.age}岁的学生{self.name}正在学习')

    """
     def study(self, course):
        print(f'年龄为{self.age}岁的学生{self.name}正在学习{course}课程')
    """

    def study_course(self, course):
        print(f'年龄为{self.age}岁的学生{self.name}正在学习{course}课程')


# 类中函数的访问
student = Student('tom', 20)
# Student.study()  # TypeError: Student.study() missing 1 required positional argument: 'self'
Student.study(student)  # 类名.函数名(self)  需要手动传入一个实例对象

# 实例访问函数
student.study()
